package jmine.tec.utils.io;

import java.io.UnsupportedEncodingException;

/**
 * Alguns utilitarios para transformar strings em array de bytes
 * 
 * @author takeshi
 */
public final class EncodingUtils {

    public static final String ASCII_CHARSET = "ASCII";

    public static final String UTF_CHARSET = "UTF-8";

    public static final String ISO_CHARSET = "ISO-8859-1";

    /**
     */
    private EncodingUtils() {
    }

    /**
     * Transforma a string em um array de bytes usando UTF-8
     * 
     * @param string String
     * @return byte
     */
    public static byte[] toUTF8(String string) {
        return toByteArray(string, UTF_CHARSET);
    }

    /**
     * Transforma a string em um array de bytes usando ISO-8859-1
     * 
     * @param string String
     * @return byte
     */
    public static byte[] toISO(String string) {
        return toByteArray(string, ISO_CHARSET);
    }

    /**
     * Transforma a string em um array de bytes usando US-ASCII
     * 
     * @param string String
     * @return byte
     */
    public static byte[] toASCII(String string) {
        return toByteArray(string, ASCII_CHARSET);
    }

    /**
     * Converte uma string em um array de bytes usando o charset passado, lancando uma {@link IllegalStateException} caso o charset nao
     * exista
     * 
     * @param string string
     * @param charset string
     * @return byte[]
     */
    private static byte[] toByteArray(String string, String charset) {
        try {
            return string.getBytes(charset);
        } catch (UnsupportedEncodingException e) {
            throw new IllegalStateException(e);
        }
    }

}
